import { IPSSysEAISchemeObject } from './ipssys-eaischeme-object';

/**
 *
 * @export
 * @interface IPSEAIDataType
 */
export interface IPSEAIDataType extends IPSSysEAISchemeObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 数据类型标记
   * @type {string}
   */
  dataTypeTag: string;

  /**
   * 数据类型标记2
   * @type {string}
   */
  dataTypeTag2: string;

  /**
   * 最大字符串长度
   * @type {number}
   */
  maxStringLength: number;

  /**
   * 最大值（字符串）
   * @type {string}
   */
  maxValueString: string;

  /**
   * 最小字符串长度
   * @type {number}
   */
  minStringLength: number;

  /**
   * 最小值（字符串）
   * @type {string}
   */
  minValueString: string;

  /**
   * 内容模式
   * @type {string}
   */
  pattern: string;

  /**
   * 数据精度
   * @type {number}
   * @default 0
   */
  precision: number;

  /**
   * 标准数据类型
   * @description 值模式 [属性标准数据类型] {0：UNKNOWN、 1：BIGINT、 2：BINARY、 3：BIT、 4：CHAR、 5：DATETIME、 6：DECIMAL、 7：FLOAT、 8：IMAGE、 9：INT、 10：MONEY、 11：NCHAR、 12：NTEXT、 13：NVARCHAR、 14：NUMERIC、 15：REAL、 16：SMALLDATETIME、 17：SMALLINT、 18：SMALLMONEY、 19：SQL_VARIANT、 20：SYSNAME、 21：TEXT、 22：TIMESTAMP、 23：TINYINT、 24：VARBINARY、 25：VARCHAR、 26：UNIQUEIDENTIFIER、 27：DATE、 28：TIME、 29：BIGDECIMAL }
   * @type {( number | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29)}
   */
  stdDataType: number | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29;

  /**
   * 支持枚举值
   * @type {boolean}
   */
  enableEnum: boolean;

  /**
   * 包含最大值
   * @type {boolean}
   * @default false
   */
  includeMaxValue: boolean;

  /**
   * 包含最小值
   * @type {boolean}
   * @default false
   */
  includeMinValue: boolean;
}
